Copyright(C) 1994,1995,1996,1997 Terumasa KODAKA , Takeshi KONO
■NESA-FOレジスタ
対象 PC-H98
チップ NESA-FO
解説 o PC-H98シリーズは、NESA(New Extended Standard Architecture)と名付けら
れたアーキテクチャを採用している。NESAはおもにバスアーキテクチャであ
るが、資源を統一的に管理する機構を有している。
o NESA搭載機の拡張スロット(NESAスロット)には、従来オプションボードを
使用するためのCバスコネクタ、およびNESA対応オプションボードを使用する
ためのEバスコネクタを持つ。
図1: NESAスロットの構造
--------------------------------------------------------------
+--------------------+ +--------------------+
| Eバス | | Eバス |
+--------------------+ +--------------------+
+--------------------------------------------+
-- | Cバス | --
-- +--------------------------------------------+ --ボード面
* NESAスロットのEバスコネクタとCバスコネクタは、ボード面からの
物理的な高さが異なり、Cバスのオプションボードはカードエッヂ
コネクタに挿さり、NESA対応ボードはEバスコネクタに接続される。
* 通常、単にNESAバスと言う場合はEバスコネクタ側に出てきている
信号の方を指す。
--------------------------------------------------------------
o NESA-FO(NewExtendedStandardArchitecture-FlexibleOption)とはNESAバスに
接続される各種ハードウェアの環境などを、ソフトウェアから統一的に設定
するための機構である。NESA-FOはディップスイッチ等による設定を廃し、
SSP(SystemSetupProgram)やASP(AutoSetupProgram)で自動的にハードェア環境
を設定するための機能を提供する。
o NESA-FOレジスタは、CPUのI/O空間にマッピングされる。マッピングアドレス
は、各拡張スロットやハードディスク専用スロット、本体内蔵デバイスごとに
一意的に決められ、NESA-FOレジスタ自体の衝突はおきない。同種のNESA対応
ボードを複数枚実装した場合にも、確実に目的のボードに対してアクセスを
行う事が可能である。なお、NESA-FOレジスタ自体はI/O空間の8xDnhおよび
8xEnh、すなわちユーザー解放I/Oアドレス空間を使用している。
表1: NESA-FOレジスタのマッピング
-------------------------------------------------------------------
15 8 7 0
I/Oアドレス 1000 nnnn mmmm xxxx
| | |
| | +-------- レジスタ番号
| +------------- 物理スロットに対応
+------------------ デバイス種別に対応
-------------------------------------------------------------------
表2: 物理スロット番号とスロットの対応
----------------+----------------------------------
物理スロット番号|スロット名
----------------+----------------------------------
00h |欠番
01h |拡張スロット#1
02h |拡張スロット#2
03h |拡張スロット#3
04h |拡張スロット#4
05h |リザーブ
06h |HDC専用スロット
07h |CRTC専用スロット
08〜0Eh |リザーブ
0Fh |I/O拡張ユニット(Undocumented)
----------------+----------------------------------
表3: デバイス種別値とデバイス種別の対応
----------------+----------------------------------
デバイス種別値 |デバイス種別
----------------+----------------------------------
1101b |本体内蔵システム専用スロット
1110b |拡張ボックス内オプションスロット
----------------+----------------------------------
o NESAアーキテクチャでは、Cバスの従来オプションボードのI/Oスレーブ、
およびNESAバス(Eバス)のオプションボードのために以下のI/O空間の使用
を許している。
表4: NESA搭載機でCバスI/Oスレーブとして使用可能なI/Oアドレス
----------------------------
xnD0〜xnDFh
xnE0〜xnEFh
* nは0000〜0111b
* xはDon't care
----------------------------
表5: NESAオプションボードのI/Oスレーブとして使用可能なI/Oアドレス
----------------------------
mnD0〜mnDFh
mnE0〜mnEFh
* nは1001〜1111b
* mは0000〜0111b
----------------------------
o NESAアーキテクチャにおける各種オプションボードのための解放I/Oアドレス
を以下に列挙する。
表6: I/Oスレーブとして使用可能なI/Oアドレス
-------------------------------------------------------------
xnD0〜xnDFh CバスI/Oスレーブのために解放
xnE0〜xnEFh CバスI/Oスレーブのために解放
8mD0〜8mDFh NESA-FOレジスタ
8mE0〜8mEFh NESA-FOレジスタ
9nD0〜9nDFh NESAバスI/Oスレーブのために解放
9nE0〜9nEFh NESAバスI/Oスレーブのために解放
AnD0〜AnDFh NESAバスI/Oスレーブのために解放
AnD0〜AnDFh NESAバスI/Oスレーブのために解放
BnD0〜BnDFh NESAバスI/Oスレーブのために解放
BnD0〜BnDFh NESAバスI/Oスレーブのために解放
CnD0〜CnDFh NESAバスI/Oスレーブのために解放
CnD0〜CnDFh NESAバスI/Oスレーブのために解放
DnD0〜DnDFh NESAバスI/Oスレーブのために解放
DnD0〜DnDFh NESAバスI/Oスレーブのために解放
EnD0〜EnDFh NESAバスI/Oスレーブのために解放
EnD0〜EnDFh NESAバスI/Oスレーブのために解放
FnD0〜FnDFh NESAバスI/Oスレーブのために解放
FnD0〜FnDFh NESAバスI/Oスレーブのために解放
* xはDon't care
* nは0000〜0111b
* mは基本的に0000〜0111b。ただし、オプションボード以外のNESA
デバイスのNESA-FOレジスタのインタフェースも同様であるため、
mは1000〜1111bの値も取りうる。
-------------------------------------------------------------
関連 0000:0458h bit 7
INT 1Fh - Functions C0h
INT 1Fh - Functions C1h
INT 1Fh - Functions C2h
INT 1Fh - Functions C3h
INT 1Fh - Functions C4h
INT 1Fh - Functions C5h
INT 1Fh - Functions C6h
INT 1Fh - Functions C7h
I/O 8nm0h
名前 NESA-FOレジスタ0
機能
■[E^2PROM,PROM,FD媒体]
[READ] レジスタ0リード(機能ID1)
bit 7〜0: ボードメーカ・コード1
[WRITE] なし
■[PAL]
[READ] なし
[WRITE] レジスタ0ライト(機能ID1)
解説 o NESA-FOレジスタ0の読み書きを行う。
o ボードメーカコードの下位8bitを示す。
関連 I/O 8nm2h
I/O 8nm1h
名前 NESA-FOレジスタ1
機能
■[E^2PROM]
[READ] レジスタ1リード(データロードレジスタ)
bit 7: EDO E^2PROMからのデータ出力
bit 6: ECL E^2PROMのクロック入力
bit 5: ECS チップセレクト
bit 4: EDI データ入力
bit 3〜0: 未使用(0000b)
[WRITE] レジスタ1ライト(データロードレジスタ)
bit 7: 0
bit 6: ECL E^2PROMのクロック入力
bit 5: ECS チップセレクト
bit 4: EDI データ入力
bit 3〜0: 未使用(0000b)
■[PROM]
[READ] レジスタ1リード(データロードレジスタ)
bit 7〜0: ROM/PALリードデータ
[WRITE] レジスタ1ライト(データロードレジスタ)
bit 7: ACC NESA-FOのアドレスカウンタリセット
1= カウンタにリセットパルスが出る
0= 通常
bit 6〜0: 未使用(000000b)
■[FD媒体]
[READ] レジスタ1リード(データロードレジスタ)
[WRITE] レジスタ1ライト(データロードレジスタ)
■[PAL]
[READ] レジスタ1リード(セットアップデータリードバイト1)
[WRITE] なし[PAL]
解説 o NESA-FOレジスタ1の読み書きを行う。
関連 I/O 8nm0h
I/O 8nm2h
名前 NESA-FOレジスタ2
機能
■[E^2PROM,PROM,FD媒体]
[READ] レジスタ2リード(機能ID2)
bit 7〜0: ボードメーカ・コード2
* ボードメーカ・コード1,2は、ボードメーカ名(大文字アルファベット
3文字)をアスキーコードにし、それを2バイトに圧縮したもの
一般ユーザー用のボードメーカーコード6C00h〜6FFFh
[WRITE] なし
■[PAL]
[READ] なし
[WRITE] レジスタ2ライト(機能ID2)
解説 o NESA-FOレジスタ2の読み書きを行う。
o ボードメーカコードの上位8bitを示す。
関連 I/O 8nm0h
I/O 8nm3h
名前 NESA-FOレジスタ3
機能
■[E^2PROM,PROM,FD媒体]
[READ] なし
[WRITE] レジスタ3ライト
■[PAL]
[READ] レジスタ3リード(セットアップデータリードバイト2)
[WRITE] なし
解説 o NESA-FOレジスタ3に読み書きを行う。
関連
I/O 8nm4h
名前 NESA-FOレジスタ4
機能
■[E^2PROM,PROM,FD媒体]
[READ] レジスタ4リード(機能ID3)
bit 7〜0: 製品コード
ボードに一対一で対応する製品コード
NEC製のNESAデバイスの製品コードは以下の通りである。
表 製品コードと製品名の対応例(Undocumented)
----------+-----------------------------
製品コード|製品名
----------+-----------------------------
02h |PC-H98/70-E02(ESDI 100MB HDD)
03h |PC-H98S/8-E02(SCSI 100MB HDD)
04h |PC-H98-B02(2MBメモリボード)
----------+-----------------------------
[WRITE] なし
■[PAL]
[READ] なし
[WRITE] レジスタ4ライト(機能ID3)
解説 o NESA-FOレジスタ4に読み書きを行う。
o ボードに対応した製品コードを示す。
関連
I/O 8nm5h
名前 NESA-FOレジスタ5
機能
■[E^2PROM,PROM,FD媒体]
[READ] なし
[WRITE] レジスタ5ライト
■[PAL]
[READ] レジスタ5リード(セットアップデータリードバイト3)
[WRITE] なし
解説 o NESA-FOレジスタ5に読み書きを行う。
関連
I/O 8nm6h
名前 NESA-FOレジスタ6
機能
■[E^2PROM,PROM,FD媒体]
[READ] レジスタ6リード(機能ID4)
bit 7〜4: コンプ・コード
* ボードの改版による版数
bit 3,2 :ボード区分
11b= 未実装
10b= リザーブ
01b= 新ボード(NESAボード)
00b= 従来ボード(Cバス)
bit 1,0: セットアップ情報タイプ
11b= E^2PROM
10b= PROM
01b= PAL
00b= FD媒体または情報なし
[WRITE] なし
■[PAL]
[READ] なし
[WRITE] レジスタ6ライト(機能ID4)
解説 o NESA-FOレジスタ6に読み書きを行う。
関連
I/O 8nm7h
名前 NESA-FOレジスタ7
機能
■[E^2PROM,PROM,FD媒体]
[READ] なし
[WRITE] レジスタ7ライト
■[PAL]
[READ] レジスタ7リード(セットアップデータリードバイト4)
[WRITE] なし
解説 o NESA-FOレジスタ7に読み書きを行う。
関連
I/O 8nm8h
名前 NESA-FOレジスタ8
機能
[READ] レジスタ8リード(ボードコントロール)
bit 7,6: EINT1,EINT0 割り込みレベルセンス
bit 5,4: INT1,INT0 割り込みレベルセンス(外付け用)
1= レベル割り込み発生時
0= レベル割り込み未発生状態(リセット時)
* オプションボード側のデバイスから入力される割り込み要求信号
IN<1,0>の各チャンネルに対するレベルをセンスする。
bit 3: NMI NMIセンス
0= 通常(リセット時NMI未発生状態)
1= NMI発生中
bit 2,1: WAIT1,0 NESA-FOレジスタウェイト設定
00= 0ウェイト(リセット時)
01= 1ウェイト
10= 2ウェイト
11= 3ウェイト
* ウェイトサイクルの追加を指定する。ただしBIOS ROMへのウェイト
指定は除く。
bit 0: BDE ボードイネーブル
0= Disable(リセット時)
1= Enable
[WRITE] レジスタ8ライト(ボードコントロール)
bit 7〜4: 未使用
bit 3: NMI NMIセンス
0= NMIクリア
1= NMI保存
bit 0: BDE ボードイネーブル
0= Disable
1= Enable
* NESA-FOレジスタへのアクセスを除くボードの機能の有効/無効
を設定する。
解説 o NESA-FOレジスタ8に読み書きを行う。
関連
I/O 8nm9h
名前 NESA-FOレジスタ9
機能
■[E^2PROM,PROM,FD媒体]
[READ] なし
[WRITE] レジスタ9ライト
■[PAL]
[READ] レジスタ9リード(セットアップデータリードバイト5)
[WRITE] なし
解説 o NESA-FOレジスタ9に読み書きを行う。
関連
I/O 8nmAh
名前 NESA-FOレジスタA
機能
■[E^2PROM,PROM,FD媒体]
[READ] なし
[WRITE] レジスタ10ライト
■[PAL]
[READ] なし
[WRITE] レジスタ10ライト(DMA,割り込み,ウェイト数)
bit 7〜5: A2〜0 不明
* 折り返し用のポートでNESA-FOチップでは機能しない
bit 4: INTE/L 割り込み要求方法
0= レベル(リセット時)
1= エッジ
* オプションボード側のデバイスから入力される割り込み要求信号
IN<1,0>を、エッジ/レベルどちらの方法で要求するのか設定する。
bit 3,2: INTCH11,INTCH10
bit 1,0: INTCH01,INTCH00
00b= IR0(リセット時,2チャンネルとも)
01b= IR1
10b= IR2
11b= IR3
* オプションボード側のデバイスから入力される割り込み要求信号
IN<1,0>をNESAバス側へ出力する割り込み要求信号群IR<3〜0>の
どの端子に出力するのかを設定する。
解説 o NESA-FOレジスタ10に読み書きを行う。
関連
I/O 8nmBh
名前 NESA-FOレジスタB
機能
■[E^2PROM,PROM,FD媒体]
[READ] なし
[WRITE] レジスタ11ライト
■[PAL]
[READ] レジスタ11リード(セットアップデータリードバイト6)
[WRITE] なし
解説 o NESA-FOレジスタ11に読み書きを行う。
I/O 8nmCh
名前 NESA-FOレジスタC
機能
■[E^2PROM,PROM,FD媒体]
[READ] なし
[WRITE] レジスタ12ライト
■[PAL]
[READ] なし
[WRITE]
bit 7: IOCS
0= PA<F〜C>/ADEデコード(リセット時)
(アドレス0nmXh X:0〜F→ICSアクティブ)
1= PAF/ADEデコード
(アドレスinmXh i:0〜7,X:0〜F→ICSアクティブ)
* オプションボード側のI/Oデバイスに出力するI/Oチップセレクト
信号(ICS)のデコード条件を設定する。
bit 6,5: BWAIT1,BWAIT0
00b= 0ウェイト
01b= 1ウェイト
10b= 2ウェイト
11b= 3ウェイト(リセット時)
* BIOS ROM読みだし時のウェイトサイクルの追加を指定する。
bit 4: DMAIORW
0= Enable(リセット時)
1= Disable
* DMA時のIOR/IOWの出力の許可/禁止を指定する。
bit 3,2: DMATR11,DMATR10 DMA転送モード(DMA ch#1用)
bit 1,0: DMATR01,DMATR00 DMA転送モード(DMA ch#0用)
00b= バイト転送モード(リセット時)
01b= ワード転送モード
10b= ダブルワード転送モード
11b= 禁止(DMA転送は行なわれない)
* オプションボード側のデバイスから入力されるDMA要求信号DR<1,0>
の各チャネルに対する転送モード(バイト/ワード/ダブルワード)
を設定する。
DMA要求をしないチャネルの転送モードは、DMA要求をするチャ
ネルの転送モードと一致させること。
解説 o NESA-FOレジスタ12に読み書きを行う。
I/O 8nmDh
名前 NESA-FOレジスタD
機能
■[E^2PROM,PROM,FD媒体]
[READ] なし
[WRITE] レジスタ13ライト
■[PAL]
[READ] レジスタ13リード(セットアップデータリードバイト7)
[WRITE] なし
解説 o NESA-FOレジスタ13に読み書きを行う。
I/O 8nmEh
名前 NESA-FOレジスタE
機能
■[E^2PROM,PROM,FD媒体]
[READ] なし
[WRITE] レジスタ14ライト
■[PAL]
[READ] なし
[WRITE] なし
bit 7,6 :B1,B0 不明
* 折り返し用のポートでNESA-FOチップでは機能しない
bit 5〜3: DMACH12〜10
bit 2〜0: DMACH02〜00
000b= RQ0
001b= RQ1
010b= RQ2
011b= RQ3
100b= RQ4
101b= RQ5
110b= RQ6
111b= 設定禁止
* オプションボード側のデバイスから入力されるDMA要求信号DR<1,0>
をNESAバス側へ出力するDMA要求信号群RQ<6〜0>のどの端子に接続
するか設定する。
解説 o NESA-FOレジスタ14に読み書きを行う。
関連
I/O 8nmFh
名前 NESA-FOレジスタF
機能
■[E^2PROM,PROM,FD媒体]
[READ] なし
[WRITE] レジスタ15ライト
■[PAL]
[READ] レジスタ15リード(セットアップデータリードバイト8)
[WRITE] なし
解説 o NESA-FOレジスタ15に読み書きを行う。
関連